1 PRÉSENTATION DES DONNÉES ET CONTEXTUALISATION GÉNÉRALE

1.1 Packages nécessaires

# Librairies utilisées
library(sf)
library(cartography)
library(mapsf)
# library(corrplot)
# library(cowplot)
# library(MTA)
library(readxl)
library(ggplot2)
# library(FactoMineR) 
# library(factoextra)
# library(cluster)
library(reshape)
library(reshape2)
# library(flows)
# NB : Pour le package flows, la version la plus récente est disponible ici :
# remotes::install_github("rCarto/flows") ou # install.packages("mapsf")
# Pour obtenir une version plus ancienne (celle utilisée ici) : https://cran.r-project.org/src/contrib/Archive/flows/
# install.packages("packages/flows_1.1.1.tar.gz", repos=NULL, type="source")
# library(sp)
# library(knitr)
# library(condformat) # https://cran.r-project.org/web/packages/condformat/vignettes/introduction.html
# library(units)
# library(stringr)
# library(dplyr)
# library(questionr)
# library(spdep) # Pour les matrices de contiguïté
# library(rgeoda) # Pour les matrices de contiguïté

# Liste pour installer les packages si besoin :
# sf cartography mapsf readxl foreign dplyr flextable knitr stringr units condformat forcats ggplot2 rstatix questionr corrplot gtsummary broom GGally effects forestmodel ggeffects labelled cowplot spdep rgeoda

1.2 Import des couches géographiques consolidées et des données

Les données utilisées sont une compilation de données principalement socio-économiques, localisées. La source principale est l’INSEE. Pour plus de détails, cf. le Markdown “Communes nouvelles : préparation des données”. NB : Ont été exclues des analyses l’Outre-mer et la Corse, espaces non concernés par les communes nouvelles.

Les géométries sont ici importées.

geom2011 <- st_read("data/geom.gpkg", layer = "geom2011", quiet = TRUE) 
geom_new <- st_read("data/geom.gpkg", layer = "geom_new", quiet = TRUE) 
geomfus2011 <- st_read("data/geom.gpkg", layer = "geomfus2011", quiet = TRUE) 
geomCN_new <- st_read("data/geom.gpkg", layer = "geomCN_new", quiet = TRUE)  
dep <- st_read("data/geom.gpkg", layer = "dep", quiet = TRUE)

# Métadonnées
# Liste toutes les variables disponiles
# variables_dispo <- as.data.frame(read_excel("data-raw/meta.xlsx", sheet = "ind_target"))
# Liste les variables marquées dans le fichier meta_budgets.xlsx comme nous intéressant
# target <- subset(variables_dispo, variable_selec == "X")

Les données socio-économiques qui décrivent les communes en géographies 2011 et 2021 sont ici importées. On commence par extraire les communes ayant participé à la création d’une commune nouvelle, appelées ici communes fusionnantes (datafus2011), les communes nouvelles, avec les géométries au 1er janvier 2021 et caractérisées par les données à la géométrie 2011 agrégées (dataCN_new), ainsi que les communes, à la géométrie 2011, qui n’ont pas participé à la création d’une commune nouvelle (dataNfus2011)

load("data/refdata.Rdata")
# datafus2011 <- subset(df2011, COM_NOUV == "OUI")
# dataCN_new <- subset(df_new, COM_NOUV == "OUI")
# dataNfus2011 <- subset(df2011, COM_NOUV == "NON") 

1.3 Jointure données / géométries

Dans un certain nombre de cas, il sera utile d’avoir, dans un même objet, les données et les géométries. Les données sont ici jointes aux couches géographiques d’intérêt.

geom2011 <- merge(geom2011, df2011, by = "CODGEO")
geom_new <- merge(geom_new, df_new, by = "CODGEO_new")
# geomCN_new <- merge(geomCN_new, dataCN_new, by = "CODGEO_new")
# geomfus2011 <- merge(geomfus2011, datafus2011, by = "CODGEO")

1.4 Définition de sous-ensembles pour les tests

Un certain nombre d’espaces peuvent être étudiés à part : certaines communes nouvelles car elles ont été l’objet d’une enquête qualitative (Bideau (2017), Bideau (2019)), d’autres car elles sont sur des territoires très touchés par les fusions communales. Ces sous-ensembles sont cartographiés dans la section 1.7.

testEdC <- subset (geom2011, CODGEO_new == "61324" | CODGEO_new =="73150" | CODGEO_new == "73006")
testEdCSavoie <- subset (geom2011, CODGEO_new =="73150" | CODGEO_new == "73006")
testNormandie <- subset (geom2011, REG == "23" | REG == "25") # Haute et Basse Normandie
test49 <- subset (geom2011, CODE_DEPT == "49" ) # Département du Maine-et-Loire
testOuest <- subset (geom2011, REG == "23" | REG == "25"| REG == "53"| REG == "52") # Normandies, Bretagne, Pays-de-la-Loire

2 ÉVOLUTION GÉNÉRALE

Il y a peu de bases de données présentant l’évolution du nombre de communes depuis leur création lors de la Révolution française. En général, la question du changement de périmètre (perte ou acquisition de territoires, les territoires d’outre-rhin, Nice et la Savoie, Alsace-Moselle etc) n’est pas évoquée.

2.1 Évolution sommaire

# 1793-1999
# Source : http://cassini.ehess.fr/fr/html/8_glossaire.php?d=BDCarto à la définition du nom "commune"
annees <- c(1793, 1800, 1806, 1876, 1936, 1968, 1975, 1999)
nbr_com <- c(40431, 40345, 40210, 37745, 38014, 37708, 36296, 36565)
# 1876  y compris l’Alsace-Lorraine
graph <- data.frame(annees, nbr_com)

# ajout données 2023 pour voir (sources INSEE, France métropolitaine + oute-mer)
graph[nrow(graph)+1, ] <- c(1982, 36433)
graph[nrow(graph)+1, ] <- c(2012,   36571)
graph[nrow(graph)+1, ] <- c(2023, 34945)


# plot(annees, nbr_com)

ggplot(data=graph, aes(x=annees, y=nbr_com)) +
  geom_line() +
  labs(title="Évolution du nombre de communes en France", subtitle="1793-2023", x="", y = "", caption="Source : cassini.ehess.fr")

ggplot(data=graph, aes(x=annees, y=nbr_com)) +
  geom_line() +
  ylim(0, 41000) +
  labs(title="Évolution du nombre de communes en France", subtitle="1793-2023", x="", y = "", caption="Source : cassini.ehess.fr")

2.2 Utilisation de la base Cassini

Le site Cassini a été créé par l’EHESS, permet de retrouver des évolutions très nombreuses concernant les communes françaises.

Lien donné par Nicolas Verdier (juillet 2023) : https://didomena.ehess.fr/concern/data_sets/6395wb092?locale=fr (base en cours d’attribution d’un DOI, possiblement réalisation d’un data paper).

2.2.1 Exploration graphique

Proposition d’une exploitation pour avoir quelques graphiques un peu propres.

# download.file("https://didomena.ehess.fr/downloads/kd17cw827?locale=fr", "data-raw/temps_long/lieux_cassini_devenus_communes.csv")
# Téléchargement effectué le 6 mars 2023

cassini <- read.csv("data-raw/temps_long/lieux_cassini_devenus_communes.csv",
                            sep=",", colClasses = "character", head = TRUE, stringsAsFactors = TRUE, fill = TRUE)

# Tentative de liaison entre la base cassini et la base DAC
load("Archives/data_prep 2011-2021(01)/data/refdata.Rdata")

cassini <- merge(cassini, df_new[, c("CODGEO_new", "NbrComFus")], by.x = "commune_mars_2021", by.y = "CODGEO_new")
# Attention, dans la base Cassini, les communes_mars_2021 sont présentes plusieurs fois

# La variable "departement_1999" permet de localiser l'ensemble des communes. Ce qui permet d'isoler certaines parties du territoire
# table(is.na(cassini$commune_mars_2021))

# Pour la commune de Vornay (Cher), la base indique "s" comme département. On remplace par "18".
cassini$nom_1999[which(cassini$departement_1999 == "s")]
## [1] "Vornay"
cassini$departement_1999[which(cassini$departement_1999 == "s")] <- 18
# On corrige simplement les départements avec un seul chiffre (1, 2, 3 etc) pour homogénéiser (transformés en 01, 02, 03 etc)
cassini$departement_1999 <- stringr::str_pad(cassini$departement_1999, 2, pad = "0")
table(cassini$departement_1999)
## 
##   01   02   03   04   05   06   07   08   09   10   11   12   13   14   15   16 
##  510  911  441  269  201  166  386  559  477  504  506  678  126  929  290  459 
##   17   18   19   21   22   23   24   25   26   27   28   29   30   31   32   33 
##  544  330  339  759  401  408  721  703  419  872  473  310  398  671  697  613 
##   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49 
##  389  375  297  325  618  765  393  332  368  304  231  372  472  448  206  428 
##   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65 
##  695  723  559  294  679  605  268  994  403  705  769  634 1022  502  683  517 
##   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81 
##  279  593  400  318  678  643  421  344  337   15 1001  593  278  373 1017  397 
##   82   83   84   85   86   87   88   89   90   91   92   93   94   95 
##  272  163  168  336  356  253  569  498  108  210   36   40   49  199
# Possible de retirer certains départements
# cassini_reduite <- subset(cassini, departement_1999 != "2A" & departement_1999 != "2B" & departement_1999 != "73" & departement_1999 != "74")
# table(cassini_reduite$departement_1999)

# On peut aussi utiliser la colonne "intendances_types"
table(cassini$intendances_types)
## 
##                                               
##                                             2 
##                                    intendance 
##                                         41322 
##                         intendance,intendance 
##                                           962 
##              intendance,intendance,intendance 
##                                            21 
##             intendance,souveraineté étrangère 
##                                            16 
##                        souveraineté étrangère 
##                                          1025 
##             souveraineté étrangère,intendance 
##                                            26 
## souveraineté partagée ou contestée,intendance 
##                                            15
# On décide d'enlever les territoires qui, au départ, étaient au moins en partie sous souveraineté étrangère
cassini_reduite <- subset(cassini, intendances_types != "intendance,souveraineté étrangère" & intendances_types != "souveraineté étrangère" & intendances_types != "souveraineté étrangère,intendance" & intendances_types != "souveraineté partagée ou contestée,intendance")
# On enlève également les territoires perdus en 1870 (Alsace, Moselle)
cassini_reduite <- subset(cassini_reduite, departement_1999 != "57" & departement_1999 != "67" & departement_1999 != "68")
# table(cassini_reduite$departement_1999)

# Test pour ne sélectionner que l'Alsace-Moselle
# cassini_reduite <- subset(cassini, departement_1999 == "57" | departement_1999 == "67" | departement_1999 == "68")



# On cherche les noms des colonnes qui contiennent le motif "_info"
labels_data_pop <- colnames(cassini[grep(pattern = "_info", colnames(cassini), ignore.case = FALSE)])

# En l'absence de méta-données détaillées, on choisit de ne s'intéresser qu'aux communes dont la population est renseignée ou simplement lacunaire (devrait être renseignée). On postule que les autres indications désignent des communes n'existant pas à l'époque.
table (cassini_reduite$pop_an3_info)
## 
##  abs.  adm.  lac.   pop    si 
##   215    31   136 36917  3102
label <- labels_data_pop [2] # Si besoin pour tests

evol_nbr_com <- data.frame() # Création d'un objet pour récupérer les résultats totaux
evol_nbr_com_reduit <- data.frame() # Création d'un objet pour récupérer les résultats de la base réduite

# Boucle pour exploiter les données date par date
for (label in labels_data_pop) {
  annee <- substr(label, start =5, stop = nchar(label)-5) # On repère le n° de l'année en segmentant le label
  sous_tableau <- subset(cassini, cassini[, label] == "pop" | cassini[, label] == "lac.") # On crée un sous-tableau comptant uniquement les communes dont la population nous intéresse, à l'année donnée
  # sous_tableau <- subset(cassini, cassini[, label] == "pop") # Juste avec les populations connues
  nbr_com <- nrow(sous_tableau) # On compte le nombre de communes
  
  sous_tableau_reduit <- subset(cassini_reduite, cassini_reduite[, label] == "pop" | cassini_reduite[, label] == "lac.") # On crée un sous-tableau comptant uniquement les communes dont la population nous intéresse, à l'année donnée
  # sous_tableau_reduit <- subset(cassini_reduite, cassini_reduite[, label] == "pop") # Juste avec les populations connues
  nbr_com_reduit <- nrow(sous_tableau_reduit) # On compte le nombre de communes
  
  i <- c(annee, nbr_com) # On compile les résultats totaux
  i_reduit <- c(annee, nbr_com_reduit) # On compile les résultats totaux
  evol_nbr_com <- rbind(evol_nbr_com, i, stringsAsFactors = FALSE)
  evol_nbr_com_reduit <- rbind(evol_nbr_com_reduit, i_reduit, stringsAsFactors = FALSE)
}

# On traite à la main les deux années 2011 et 2021
# Pour 2011, on fait la liste des CODGEO unique de 2021 et on multiplie par leur nombre de communes fusionnantes (donne le nombre de communes en 2011) 
# Pas très propre mais pas l'énergie de faire mieux là...
CODGEO_2021 <- as.data.frame(unique(cassini$commune_mars_2021))
colnames(CODGEO_2021) <- "CODGEO_new"
CODGEO_2021_reduit <- as.data.frame(unique(cassini_reduite$commune_mars_2021))
colnames(CODGEO_2021_reduit) <- "CODGEO_new"
# On joint pour avoir le nombre de communes fusionnantes
CODGEO_2021 <- merge(df_new[c("CODGEO_new", "NbrComFus")], CODGEO_2021, by = "CODGEO_new", all.y = TRUE)
CODGEO_2021_reduit <- merge(df_new[c("CODGEO_new", "NbrComFus")], CODGEO_2021_reduit, by = "CODGEO_new", all.y = TRUE)
# Pour les communes non fusionnantes, on indique qu'il y en a une
CODGEO_2021$NbrComFus[is.na(CODGEO_2021$NbrComFus)] <- 1
CODGEO_2021_reduit$NbrComFus[is.na(CODGEO_2021_reduit$NbrComFus)] <- 1

i_2011 <- c(2011, sum(CODGEO_2021$NbrComFus))
i_2011_reduit <- c(2011, sum(CODGEO_2021_reduit$NbrComFus))
evol_nbr_com <- rbind(evol_nbr_com, i_2011)
evol_nbr_com_reduit <- rbind(evol_nbr_com_reduit, i_2011_reduit)


# Pour 2021, on liste simplement le nombre de CODGEO uniques de 2021 pour chacun des groupe
i_2021 <- c(2021, length(unique(cassini$commune_mars_2021)))
i_2021_reduit <- c(2021, length(unique(cassini_reduite$commune_mars_2021)))

evol_nbr_com <- rbind(evol_nbr_com, i_2021)
evol_nbr_com_reduit <- rbind(evol_nbr_com_reduit, i_2021_reduit)

colnames (evol_nbr_com) <- c("annees", "nbr_com")
colnames (evol_nbr_com_reduit) <- c("annees", "nbr_com")
evol_nbr_com$base <- "tout"
evol_nbr_com_reduit$base <- "tjr_fr"

evol_nbr_com <- rbind(evol_nbr_com, evol_nbr_com_reduit)

# evol_nbr_com[c(1,2), 1] <- c(1795, 1800) # On modifie l'intitulé pour faciliter la représentation graphique
evol_nbr_com$annees[evol_nbr_com$annees == "an3"] <- 1795
evol_nbr_com$annees[evol_nbr_com$annees == "an8"] <- 1800

evol_nbr_com[,1] <- as.numeric(evol_nbr_com[,1]) # On passe en numérique pour faciliter la représentation
evol_nbr_com[,2] <- as.numeric(evol_nbr_com[,2]) # Si on veut faire une seule colonne



ggplot(data=evol_nbr_com, aes(x=annees, y=nbr_com, group=base)) +
  geom_line(aes(group = base, linetype = base)) +
  scale_linetype(name = "Périmètre", labels = c("Territoires toujours français", "Toute base Cassini")) +
  scale_x_continuous (breaks = seq(1780, 2030, 20)) +
  labs(title="Évolution du nombre de communes", subtitle="1793-2021", x="", y = "", caption="Sources : cassini.ehess.fr, INSEE")

ggplot(data=evol_nbr_com, aes(x=annees, y=nbr_com, group=base)) +
  geom_line(aes(group = base, linetype = base)) +
  scale_linetype(name = "Périmètre", labels = c("Territoires toujours français", "Toute base Cassini")) +
  ylim(0, 41000) +
  labs(title="Évolution du nombre de communes", subtitle="1793-2021", x="", y = "", caption="Sources : cassini.ehess.fr, INSEE")

rm(label, annee, sous_tableau, nbr_com, i, nbr_com_reduit, sous_tableau_reduit, i_reduit, i_2021, i_2021_reduit, CODGEO_2021, CODGEO_2021_reduit, i_2011, i_2011_reduit)

3 Étude par départements

3.1 Réalisation d’un graphique par département

liste_dep <- sort(unique (cassini$departement_1999))

num_dep <- 88

for (num_dep in liste_dep) {
  
cassini_reduite <- subset(cassini, departement_1999 == num_dep)
nom_dep <- dep$LIBELLE[dep$CODE_DEPT == num_dep]


evol_nbr_com_reduit <- data.frame() # Création d'un objet pour récupérer les résultats de la base réduite

# Boucle pour exploiter les données date par date
for (label in labels_data_pop) {
  annee <- substr(label, start =5, stop = nchar(label)-5) # On repère le n° de l'année en segmentant le label
  sous_tableau_reduit <- subset(cassini_reduite, cassini_reduite[, label] == "pop" | cassini_reduite[, label] == "lac.") # On crée un sous-tableau comptant uniquement les communes dont la population nous intéresse, à l'année donnée
  # sous_tableau_reduit <- subset(cassini_reduite, cassini_reduite[, label] == "pop") # Juste avec les populations connues
  nbr_com_reduit <- nrow(sous_tableau_reduit) # On compte le nombre de communes
  
  i_reduit <- c(annee, nbr_com_reduit) # On compile les résultats totaux
  evol_nbr_com_reduit <- rbind(evol_nbr_com_reduit, i_reduit, stringsAsFactors = FALSE)
}

# On traite à la main les deux années 2011 et 2021
# Pour 2011, on fait la liste des CODGEO unique de 2021 et on multiplie par leur nombre de communes fusionnantes (donne le nombre de communes en 2011) 
# Pas très propre mais pas l'énergie de faire mieux là...
CODGEO_2021_reduit <- as.data.frame(unique(cassini_reduite$commune_mars_2021))
colnames(CODGEO_2021_reduit) <- "CODGEO_new"
# On joint pour avoir le nombre de communes fusionnantes
CODGEO_2021_reduit <- merge(df_new[c("CODGEO_new", "NbrComFus")], CODGEO_2021_reduit, by = "CODGEO_new", all.y = TRUE)
# Pour les communes non fusionnantes, on indique qu'il y en a une
CODGEO_2021_reduit$NbrComFus[is.na(CODGEO_2021_reduit$NbrComFus)] <- 1

i_2011_reduit <- c(2011, sum(CODGEO_2021_reduit$NbrComFus))
evol_nbr_com_reduit <- rbind(evol_nbr_com_reduit, i_2011_reduit)


# Pour 2021, on liste simplement le nombre de CODGEO uniques de 2021 pour chacun des groupe
i_2021_reduit <- c(2021, length(unique(cassini_reduite$commune_mars_2021)))

evol_nbr_com_reduit <- rbind(evol_nbr_com_reduit, i_2021_reduit)

colnames (evol_nbr_com_reduit) <- c("annees", "nbr_com")

evol_nbr_com <- evol_nbr_com_reduit

# evol_nbr_com[c(1,2), 1] <- c(1795, 1800) # On modifie l'intitulé pour faciliter la représentation graphique
evol_nbr_com$annees[evol_nbr_com$annees == "an3"] <- 1795
evol_nbr_com$annees[evol_nbr_com$annees == "an8"] <- 1800

evol_nbr_com[,1] <- as.numeric(evol_nbr_com[,1]) # On passe en numérique pour faciliter la représentation
evol_nbr_com[,2] <- as.numeric(evol_nbr_com[,2]) # Si on veut faire une seule colonne



# ggplot(data=evol_nbr_com, aes(x=annees, y=nbr_com)) +
#   geom_line() +
#   scale_x_continuous (breaks = seq(1780, 2030, 20)) +
#   labs(title="Évolution du nombre de communes en Aveyron", subtitle="1793-2021", x="", y = "", caption="Sources : cassini.ehess.fr, INSEE")

graphique <- ggplot(data=evol_nbr_com, aes(x=annees, y=nbr_com)) +
  geom_line() +
  ylim(0, max(evol_nbr_com$nbr_com)+50) +
  scale_x_continuous (breaks = seq(1780, 2030, 20)) +
  labs(title= paste0("Évolution du nombre de communes en ", nom_dep, " (", num_dep, ")"), subtitle="1793-2021", x="", y = "", caption="Sources : cassini.ehess.fr, INSEE")

print(graphique)


rm(label, annee, nbr_com_reduit, sous_tableau_reduit, i_reduit, i_2021_reduit, CODGEO_2021_reduit, i_2011_reduit, graphique)

}

Pour certains départements, les fluctuations paraissent particulièrement brutales voire carrément incohérentes, par exemple lorsque d’un recensement sur l’autre on passe de plusieurs centaines de communes à… zéro.

Nécessité de regarder en détail les données des départements suivants :

  • Alpes-Maritimes (06) qui fait le yoyo ;

  • Charente (16) et la Loire-Atlantique qui n’ont aucune commune en 1836 mais stable avant et après ;

  • Côte-d’Or (21), qui perd presque 250 communes en 1836 (et les regagne ensuite) ;

  • Meurthe-et-Moselle (54) et Moselle (57) : évolutions très hachées ;

  • Orne (61) : n’a plus que 100 communes en 1831 et les regagne après ;

  • Savoie (73) et Haute-Savoie (74) : n’ont aucune commune en 1831, 1841 et 1851 (absence de transposition de recensements non français ?) ;

  • Vosges (88) : bizareries en 1851 (plus de communes) et 1872 (seulement une cinquantaine).

3.2 Le cas de l’Aveyron

Étude exploratoire menée mi-juillet 2023. Laissée de côté à partir du moment ou boucle faite pour tous les départements.

# On sélectionne uniquement l'Aveyron
cassini_reduite <- subset(cassini, departement_1999 == "12")

evol_nbr_com_reduit <- data.frame() # Création d'un objet pour récupérer les résultats de la base réduite

# Boucle pour exploiter les données date par date
for (label in labels_data_pop) {
  annee <- substr(label, start =5, stop = nchar(label)-5) # On repère le n° de l'année en segmentant le label
  sous_tableau_reduit <- subset(cassini_reduite, cassini_reduite[, label] == "pop" | cassini_reduite[, label] == "lac.") # On crée un sous-tableau comptant uniquement les communes dont la population nous intéresse, à l'année donnée
  # sous_tableau_reduit <- subset(cassini_reduite, cassini_reduite[, label] == "pop") # Juste avec les populations connues
  nbr_com_reduit <- nrow(sous_tableau_reduit) # On compte le nombre de communes
  
  i_reduit <- c(annee, nbr_com_reduit) # On compile les résultats totaux
  evol_nbr_com_reduit <- rbind(evol_nbr_com_reduit, i_reduit, stringsAsFactors = FALSE)
}

# On traite à la main les deux années 2011 et 2021
# Pour 2011, on fait la liste des CODGEO unique de 2021 et on multiplie par leur nombre de communes fusionnantes (donne le nombre de communes en 2011) 
# Pas très propre mais pas l'énergie de faire mieux là...
CODGEO_2021_reduit <- as.data.frame(unique(cassini_reduite$commune_mars_2021))
colnames(CODGEO_2021_reduit) <- "CODGEO_new"
# On joint pour avoir le nombre de communes fusionnantes
CODGEO_2021_reduit <- merge(df_new[c("CODGEO_new", "NbrComFus")], CODGEO_2021_reduit, by = "CODGEO_new", all.y = TRUE)
# Pour les communes non fusionnantes, on indique qu'il y en a une
CODGEO_2021_reduit$NbrComFus[is.na(CODGEO_2021_reduit$NbrComFus)] <- 1

i_2011_reduit <- c(2011, sum(CODGEO_2021_reduit$NbrComFus))
evol_nbr_com_reduit <- rbind(evol_nbr_com_reduit, i_2011_reduit)


# Pour 2021, on liste simplement le nombre de CODGEO uniques de 2021 pour chacun des groupe
i_2021_reduit <- c(2021, length(unique(cassini_reduite$commune_mars_2021)))

evol_nbr_com_reduit <- rbind(evol_nbr_com_reduit, i_2021_reduit)

colnames (evol_nbr_com_reduit) <- c("annees", "nbr_com")

evol_nbr_com <- evol_nbr_com_reduit

# evol_nbr_com[c(1,2), 1] <- c(1795, 1800) # On modifie l'intitulé pour faciliter la représentation graphique
evol_nbr_com$annees[evol_nbr_com$annees == "an3"] <- 1795
evol_nbr_com$annees[evol_nbr_com$annees == "an8"] <- 1800

evol_nbr_com[,1] <- as.numeric(evol_nbr_com[,1]) # On passe en numérique pour faciliter la représentation
evol_nbr_com[,2] <- as.numeric(evol_nbr_com[,2]) # Si on veut faire une seule colonne



ggplot(data=evol_nbr_com, aes(x=annees, y=nbr_com)) +
  geom_line() +
  scale_x_continuous (breaks = seq(1780, 2030, 20)) +
  labs(title="Évolution du nombre de communes en Aveyron", subtitle="1793-2021", x="", y = "", caption="Sources : cassini.ehess.fr, INSEE")

ggplot(data=evol_nbr_com, aes(x=annees, y=nbr_com)) +
  geom_line() +
  ylim(0, 600) +
  scale_x_continuous (breaks = seq(1780, 2030, 20)) +
  labs(title="Évolution du nombre de communes en Aveyron", subtitle="1793-2021", x="", y = "", caption="Sources : cassini.ehess.fr, INSEE")



rm(label, annee, nbr_com_reduit, sous_tableau_reduit, i_reduit, i_2021_reduit, CODGEO_2021_reduit, i_2011_reduit)

4 Bibliographie

Bideau, Gabriel. 2017. “Les Communes Nouvelles (2010-2017) : Quelle Révolution Du Territoire ?” M\'emoire de {{Master}} 2, Sous La Direction de {{Renaud Le Goix}}, Université Paris 7 Diderot. https://nakala.fr/10.34847/nkl.2f7bbnn2.
———. 2019. Les communes nouvelles françaises (2010-2019) : Une réforme territoriale silencieuse.” Annales de Géographie 728 (4/2019): 57–85. https://www.cairn.info/revue-annales-de-geographie-2019-4-page-57.htm.